package Cartas;

import org.junit.Assert;
import org.junit.Test;

public class CoringaTeste {
	
	@Test
	public void testeEhEmpilhavel() {
		
		Coringa coringaVerde = new Coringa();
		coringaVerde.setCor(Cor.VERDE);
		
		Coringa coringaVermelho = new Coringa();
		coringaVermelho.setCor(Cor.VERMELHO);
		
		Assert.assertEquals(true, coringaVerde.ehEmpilhavel(coringaVermelho));
		
		
		ComprarQuatro compraQuatroAzul = new ComprarQuatro();
		compraQuatroAzul.setCor(Cor.AZUL);
		
		Assert.assertEquals(true, coringaVerde.ehEmpilhavel(compraQuatroAzul));
		
		
		CartaNumerica carta5Vermelho = new CartaNumerica(Cor.VERMELHO, 5);
		
		Assert.assertEquals(false, coringaVerde.ehEmpilhavel(carta5Vermelho));
		Assert.assertEquals(true, coringaVermelho.ehEmpilhavel(carta5Vermelho));
		
		
		Inverter inverteVermelho = new Inverter(Cor.VERMELHO);
		
		Assert.assertEquals(false, coringaVerde.ehEmpilhavel(inverteVermelho));
		Assert.assertEquals(true, coringaVermelho.ehEmpilhavel(inverteVermelho));
		
		
		Pular pulaVerde = new Pular(Cor.VERDE);
		
		Assert.assertEquals(true, coringaVerde.ehEmpilhavel(pulaVerde));
		Assert.assertEquals(false, coringaVermelho.ehEmpilhavel(pulaVerde));
		
		
		ComprarDuas compra2Vermelho = new ComprarDuas(Cor.VERMELHO);
		
		Assert.assertEquals(false, coringaVerde.ehEmpilhavel(compra2Vermelho));
		Assert.assertEquals(true, coringaVermelho.ehEmpilhavel(compra2Vermelho));
		
	}

}
